package com.example.demo.dto.PortraitDto;


import lombok.Data;

import java.math.BigDecimal;

/**
 * 编码能力
 */
@Data
public class CodeCapacity {
    // 用户id
    private Long userId;

    // 编程题目Id 元数据
    private Long questionId;

    // 编程题目名称 元数据
    private String questionName;

    /**
     * 题目分数 - 元数据
     */
    private BigDecimal questionSore;

    // 得分--正确性 元数据
    private BigDecimal score;

    // 得分率 ： 得分 / 问题分
    private BigDecimal scoreRate;

    // 运行时间 元数据
    private Long runTime;

    // 代码效率 = 所有代码最快运行时间/考生本题代码运行的时间
    /**
     * 比如有个题目是10分，A得3分，耗时3秒，B得5分，耗时5秒，C得8分，耗时6秒。因为A得分未过半，所以不计入。B和C得分均过半，纳入统计。其中B是5秒，少于C的6秒，所以最快速度是B的5秒
     * 如果这个题目整体没有超过一半得分，或者考生自己没有超过一半得分 那么显示 此题未达到计算标准，不参与计算。返回 -1 前端显示
     */
    private BigDecimal codeEfficiency;

    // 思路 - 具体算法待定
    private BigDecimal thinking;

    // 代码速度 - 具体算法待定   （暂定用 efficiencTime / maxEfficientTime 表示）
    // 类似代码效率，efficiencTime 是有效题数除以考生考试时间（分钟）
    private BigDecimal codeSpeed;

    // 代码规范 - 具体算法待定
    private BigDecimal codeSpecification;

}
